The field of the present disclosure relates generally to data readers and, in particular, to systems and methods for generating image data from multiple views of a data reader.
Optical codes have widespread applications. For example, optical codes can be used to identify a class of objects (e.g., merchandise) or unique items (e.g., patents). As a result, optical codes are found on a wide variety of objects, such as retail goods, company assets, and documents, and help track production at manufacturing facilities and inventory at stores (by scanning items as they arrive and as they are sold). In addition, optical codes may appear on a display of a portable electronic device, such as a mobile telephone, personal digital assistant, tablet computer, laptop computer, or other device having an electronic display. For example, a customer, such as a shopper, airline passenger, or person attending a sporting event or theater event, may cause an optical code to be displayed on their portable electronic device so that an employee (e.g., merchant-employee) can read the optical code via a data reader to allow the customer to redeem a coupon or to verify that the customer has purchased a ticket for the event.
An optical code, such as a barcode, is essentially a machine-readable representation of information in a visual format. Some optical codes use a dark ink on a white substrate to create high and low reflectance upon scanning. Based on the symbology being used (e.g., UPC, Code 39, Code 128, and PDF417), an optical code may comprise data characters (or codewords in the case of, e.g., PDF417) and/or overhead characters represented by a particular sequence of bars and spaces (which may have varying widths).
Optical code readers or data readers are used to capture optical codes or other symbols or information appearing on various surfaces in order to read the information encoded in the optical code or symbol. One commonly used data reader is an imager-based reader. Imager-based readers typically include solid state image circuitry, such as charge coupled devices (CCDs) or complementary metal-oxide semiconductor (CMOS) devices, and may be implemented using a one-dimensional or two-dimensional imaging array of photosensors (or pixels) to capture an image of the optical code. One-dimensional CCD readers capture a linear cross-section of the optical code, producing an analog waveform whose amplitude represents the relative darkness and lightness of the optical code. Two-dimensional CCD or CMOS readers may capture an entire two-dimensional image. The image is then processed to find and decode an optical code. For example, virtual scan line techniques are known techniques for digitally processing an image containing an optical code by looking across an image along a plurality of lines, typically spaced apart and at various angles, somewhat like a scan pattern of a laser beam in a laser-based scanner.
Imager-based readers typically form images from one perspective, usually that of a normal vector directed from the face of the imager. Such imager-based readers therefore provide only a single point of view. It may be desirable in certain applications to take images from multiple perspectives. A few imager-based readers that generate multiple perspectives are known. One such reader is disclosed in U.S. Pat. No. 6,899,272, which discloses one embodiment that utilizes two independent cameras pointed in different orthogonal directions to collect image data from different sides of a package. Imager-based readers that employ multiple cameras require multiple circuit boards, mounting hardware, and space for the associated optical components, which can increase the expense of the reader, complicate the physical design, and increase the size of the reader. Another embodiment according to the '272 patent utilizes a single camera pointed at a moveable mirror that moves between two positions (i.e., positions A and B) to select one of two different imaging directions. The single camera has even fields (i.e., lines 2, 4, 6, etc.) and odd fields (i.e., lines 1, 3, 5, etc.). When the mirror is in position A, the even field of the imager is exposed and when the mirror is in the position B, the odd field of the imager is exposed. With a sufficiently responsive imager, e.g., at least 60 frames per second (fps), and a synchronized moveable mirror, one frame of the scanner may be captured that includes two views of different sides of a package. Accurate synchronization of the moveable mirror with the imager exposure typically involves expensive mechanical parts and control systems capable of moving the mirror within a period of approximately several milliseconds (ms). Moreover, the use of the moveable mirror adds additional cost and may reduce the reliability of the reader.